package gorm_v2

// 数据库参数配置，结构体
// 用于解决复杂的业务场景连接到多台服务器部署的 mysql、sqlserver、postgresql 数据库
// 具体用法参见常用开发模块：多源数据库的操作

type Gorm2Config struct {
	UseDbType     string `mapstructure:"use_db_type",properties:"gorm2.use_db_type"`       //# 备选项 mysql 、sqlserver、 postgresql
	Host          string `mapstructure:"host",properties:"gorm2.host"`                     //
	Port          int    `mapstructure:"port",properties:"gorm2.port"`                     //
	DataBase      string `mapstructure:"data_base",properties:"gorm2.data_base"`           //
	Prefix        string `mapstructure:"prefix",properties:"gorm2.prefix"`                 // #  目前没有用到该配置项
	User          string `mapstructure:"user",properties:"gorm2.user"`                     //
	Pass          string `mapstructure:"pass",properties:"gorm2.pass"`                     //
	Charset       string `mapstructure:"charset",properties:"gorm2.charset"`               //
	SlowThreshold int    `mapstructure:"slow_threshold",properties:"gorm2.slow_threshold"` // # 慢 SQL 阈值(sql执行时间超过此时间单位（秒），就会触发系统日志记录)
	
	SetMaxIdleConns    int `mapstructure:"set_maxidle_conns",properties:"gorm2.set_maxidle_conns"`         //
	SetMaxOpenConns    int `mapstructure:"set_max_open_conns",properties:"gorm2.set_max_open_conns"`       //
	SetConnMaxLifetime int `mapstructure:"set_conn_max_lifetime",properties:"gorm2.set_conn_max_lifetime"` //# 连接不活动时的最大生存时间(秒)
	ReConnectInterval  int `mapstructure:"re_connect_interval",properties:"gorm2.re_connect_interval"`     //# 保留项,重连数据库间隔秒数
	PingFailRetryTimes int `mapstructure:"ping_fail_retry_times",properties:"gorm2.ping_fail_retry_times"` //# 保留项,最大重连次数
}
